import axios from 'axios';
import { ElMessage } from 'element-plus'
import router from '../router'

//创建axios实例对象
const request = axios.create({
  baseURL: '/api',
  timeout: 60000,
});

//axios的请求 request 拦截器, 每次请求获取localStorage中的loginUser, 从中获取到token, 在请求头token中携带到服务端
request.interceptors.request.use(
  (config) => {
    const userLoginData = localStorage.getItem('userLogin');
    // 检查 userLoginData 是否存在
    if (userLoginData) {
      try {
        let loginUser = JSON.parse(userLoginData);
        if (loginUser && loginUser.token) {
          config.headers.token = loginUser.token;
        }
      } catch (error) {
        console.error('解析 userLogin 数据时出错:', error);
      }
    }
    return config;
  }
)

////axios的响应 response 拦截器
request.interceptors.response.use(
 (response)=>{
  return response.data;
 },
 (error)=>{
   //如果响应的状态码为401, 则路由到登录页面
   if (error.response && error.response.status === 401) {
    ElMessage.error('登录失效, 请重新登录')
    router.push('/login')
  }else{
    ElMessage.success('接口访问异常')
  }
  return Promise.reject(error);
 }
)

export default request;